package com.template.controller;


import com.template.entity.User;
import com.template.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import javax.servlet.http.HttpSession;

@Controller
public class DefaultController {

    @Autowired
    UserService userService;


    /**
     * 跳转登录页
     * @return  返回页面
     */
    @GetMapping(value = {"/","/login"})
    public String loginPage() {
        return "login";
    }

    /**
     * 登录方法
     * @param user 登录用户
     * @param session session信息
     * @param model 模板信息
     * @return  返回页面
     */
    @PostMapping(value = {"/login"})
    public String userLogin(User user, HttpSession session, Model model) {
        //  不为空判断
        if (!StringUtils.isEmpty(user.getUsername()) && StringUtils.hasLength(user.getPassword())) {
            //  判断用户名是否存在
            String username = user.getUsername();
            if(userService.isUser(username) == 0) {
                model.addAttribute("msg", "用户名不存在！");
                //  回到登录界面
                return "login";
            }
            //  判断密码是否正确
            String password = user.getPassword();
            if (userService.isPassword(username, password) == 0) {
                model.addAttribute("msg", "登录密码错误！");
                //  回到登录界面
                return "login";
            }

            user = userService.getUserInfo(username, password);

            //  将登录的用户存入session
            session.setAttribute("loginUser", user);
            // 登录成功，重定向请求
            return "redirect:/main.html";
        } else {
            //  用户名密码为空直接退出登录
            model.addAttribute("msg", "账户密码不可以为空！");
            //  回到登录界面
            return "login";
        }
    }

    /**
     * 前往主界面方法
     * @param model 模板信息
     * @return  返回页面
     */
    @GetMapping("/main.html")
    public String mianPage(Model model) {


//        List<Book> books = bookServices.list();
//
//        for (Book book : books) {
//            QueryWrapper<Content> contentQueryWrapper = new QueryWrapper<>();
//            contentQueryWrapper.eq("bookid", book.getId());
//            List<Content> contentList = contentServices.list(contentQueryWrapper);
//            book.setContentNum(contentList.size());
//        }
//
//        model.addAttribute("books", books);

        return "main";
    }


}
